package com.zhijian.warehouse.manage.entity.po;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 产品
 *
 * @author Auto Generator
 * @date 2024-10-12 16:56:24
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Api(tags = "产品")
public class Product {
    /**
     * 主键ID
     */
    @ApiModelProperty("主键ID")
    private Long id;

    /**
     * 编码
     */
    @ApiModelProperty("编码")
    @NotBlank(message = "编码不能为空")
    private String number;

    /**
     * 名称
     */
    @ApiModelProperty("名称")
    @NotBlank(message = "名称不能为空")
    private String name;

    /**
     * 型号
     */
    @ApiModelProperty("型号")
    @NotBlank(message = "型号不能为空")
    private String model;

    /**
     * 品类ID
     */
    @ApiModelProperty("品类ID")
    @NotNull(message = "品类ID不能为空")
    private Long categoryId;

    /**
     * 单位ID
     */
    @ApiModelProperty("单位ID")
    @NotNull(message = "单位ID不能为空")
    private Long unitId;

    /**
     * 仓库ID
     */
    @ApiModelProperty("仓库ID")
    private Long warehouseId;

    /**
     * 领用时限限制天
     */
    @ApiModelProperty("领用时限限制天")
    private Integer limitDay;
    /**
     * 是否删除
     */
    @ApiModelProperty("是否删除 0 = 未删除 1 = 已删除")
    private Integer isDelete;

    /**
     * 可领用个人用户ID串，以英文逗号隔开
     */
    @ApiModelProperty("可领用个人用户ID串，以英文逗号隔开")
    private String userIds;

    /**
     * 可领用部门ID串，以英文逗号隔开
     */
    @ApiModelProperty("可领用部门ID串，以英文逗号隔开")
    private String groupIds;

    /**
     * 安全库存
     */
    @ApiModelProperty("安全库存")
    private Integer safetyStock;

    /**
     * 发卡状态，1：已发卡，0：未发卡
     */
    @ApiModelProperty("发卡状态，1：已发卡，0：未发卡")
    @Deprecated
    private Byte cardStatus;

    /**
     * 状态，1：启用，0：禁用
     */
    @ApiModelProperty("条码 绑定状态，0：未绑定 1 ：绑定")
    private Integer barCodeStatus;


    /**
     * 领用状态，1：已领用，0：在库
     */
    @ApiModelProperty("领用状态，1：已领用，0：在库")
    @NotNull(message = "领用状态，1：已领用，0：在库不能为空")
    private Byte useStatus;

    /**
     * 状态，1：正常，2：故障，3：作废
     */
    @ApiModelProperty("状态，1：正常，2：故障，3：作废")
    @NotNull(message = "状态，1：正常，2：故障，3：作废不能为空")
    private Byte status;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String note;

    /**
     * RFID编码
     */
    @ApiModelProperty("RFID编码")
    private String rfId;

    /**
     * 条码
     */
    @ApiModelProperty("条码")
    private String barCode;

    /**
     * RFID 绑定状态 0 = 未绑定 1 = 已绑定
     */
    @ApiModelProperty("RFID 绑定状态 0 = 未绑定 1 = 已绑定")
    private Integer rfStatus;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 创建人ID
     */
    @ApiModelProperty("创建人ID")
    @NotNull(message = "创建人ID不能为空")
    private Long createUserId;

    /**
     * 创建人姓名
     */
    @ApiModelProperty("创建人姓名")
    private String createUserName;

    /**
     * 修改时间
     */
    @ApiModelProperty("修改时间")
    private Date updateTime;

    /**
     * 修改人ID
     */
    @ApiModelProperty("修改人ID")
    private Long updateUserId;

    /**
     * 修改人姓名
     */
    @ApiModelProperty("修改人姓名")
    private String updateUserName;
}
